package li.kaeppe.travel.tracker.parser;

public class TwoPowerLevelAsserter implements LevelAsserter {

	/* **************************************************** */
	/*                      CONSTANTS                       */
	/* **************************************************** */

	/* **************************************************** */
	/*                     MEMBER FIELDS                    */
	/* **************************************************** */

	/* **************************************************** */
	/*                      CONSTRUCTOR                     */
	/* **************************************************** */

	/* **************************************************** */
	/*                    PUBLIC METHODS                    */
	/* **************************************************** */

	public int getFirstPointLevel() {
		return 1;
	}

	public int getLevel(int counter) {
		int level = 0;
		int mask = 0x0001;
		
		if( counter != 0 ) {
			while ((counter & mask) == 0) {
				level++;
				mask = mask << 1;
			}
		}
		
		return level;
	}

	public int getLastPointLevel(int counter) {
		return 32;
	}
	
	/* **************************************************** */
	/*                  PROTECTED METHODS                   */
	/* **************************************************** */

	/* **************************************************** */
	/*                   PRIVATE METHODS                    */
	/* **************************************************** */

	/* **************************************************** */
	/*                  GETTERS AND SETTERS                 */
	/* **************************************************** */

}
